// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  const openid = cloud.getWXContext().OPENID


  // 如果数据库存在此用户，直接返回用户openid
  const db = cloud.database()
  const [errSearch, successSearch] = await awaitWrap(
    db.collection('user').where({
      openid
    }).count()
  )

  if (successSearch.total === 1) {
    return {
      openid
    }
  }

  if (errSearch) {
    return {
      errorMsg: err
    }
  }



  event.data.openid = openid
  // 如果数据库不存在此用户，user表新增用户数据然后返回用户openid
  const [err, success] = await awaitWrap(
    db.collection('user').add({
      // data 字段表示需新增的 JSON 数据
      data: event.data
    })
  )

  if (success) {
    return {
      openid,
    }
  } else {
    return {
      errorMsg: err
    }
  }


}

// await错误处理公共方法
const awaitWrap = (promise) => {
  return promise
    .then(success => [null, success])
    .catch(err => [err, null])
}